package com.distribuida.supertrunfo.facade;

import java.util.ArrayList;

import com.distribuida.servidor.Servidor;
import com.distribuida.supertrunfo.comum.Jogador;
import com.distribuida.supertrunfo.impl.Jogo;


public class SuperTrunfoFacade {
	
	public Jogo getJogoPorID(int id) throws Exception{
		return Servidor.getInstance().getJogoPorId(id);
	}
	
	public Jogador adicionarJogador(int id_jogo, String nome) throws Exception{
		Jogador jogador = new Jogador(nome);
		try{
			getJogoPorID(id_jogo).adicionarJogador(jogador);
		}catch(Exception e){
			throw e;
		}
		return jogador;
	}
	
	public boolean podeIniciarJogo(int id_jogo) throws Exception{
		return getJogoPorID(id_jogo).podeIniciarJogo();
	}
	
	public long tempoPrimeiroJogador(int id_jogo) throws Exception{
		return getJogoPorID(id_jogo).retornaTempoPrimeiroJogador();
	}
	
	public void setarCaracteristicaAleatoria(int id_jogo) throws Exception{
		getJogoPorID(id_jogo).setCaracteristicaRandom();
	}
	
	public void definirCaracteristica(int id_jogo, String id_caracteristica) throws Exception{
		getJogoPorID(id_jogo).setIdCaracteristica(id_caracteristica);
	}
	
	public long getTempoUltimaJogada(int id_jogo) throws Exception{
		return getJogoPorID(id_jogo).getUltimaJogada();
	}
	
	public boolean podeTerminarJogo(int id_jogo) throws Exception{
		return getJogoPorID(id_jogo).podeTerminarJogo();
	}
	
	public void distribuirCartas(int id_jogo) throws Exception{
		getJogoPorID(id_jogo).distribuirCartas();
	}
	
	public void ExecutarRodada(int id_jogo) throws Exception{
		getJogoPorID(id_jogo).turno();
	}
	
	public ArrayList<Jogador> obterVencedores(int id_jogo) throws Exception{
		return getJogoPorID(id_jogo).getVencedor();
	}


}
